<!DOCTYPE html>
<meta charset="utf-8">
<script src=../../resources/testharness.js></script>
<script src=../../resources/testharnessreport.js></script>
<style>
  input {
    background-color: rgb(50, 150, 200);
  }
  input:focus-within {
    background-color: rgb(250, 200, 150);
  }
</style>
<input id="input">
<script>
  test(() => assert_not_equals(window.testRunner, undefined),
       "Check window.testRunner is available");

  const input = document.getElementById("input");
  input.focus();

  test(() => assert_equals(getComputedStyle(input).backgroundColor, "rgb(250, 200, 150)"),
       "Check ':focus-within' is applied after focusing the input");

  testRunner.setWindowFocus(false);
  test(() => assert_equals(getComputedStyle(input).backgroundColor, "rgb(50, 150, 200)"),
       "Check ':focus-within' is not applied when the window is inactive");

  testRunner.setWindowFocus(true);
  test(() => assert_equals(getComputedStyle(input).backgroundColor, "rgb(250, 200, 150)"),
       "Check ':focus-within' is applied when the window is active again");
</script>
